// axios 二次封装
import axios from 'axios'
import { message } from 'antd'
// 自己mock数据 
// 判断node环境 webpack的mode模式
const baseURL = process.env.NODE_ENV === 'development' ? 'http://localhost:3000' : '真实后端URL'

// 创建 axios 实例
const service = axios.create({
  baseURL,
})

// 请求拦截
service.interceptors.request.use(config => {
  // 将本地保存的 token 数据携带在请求头中传递到后端服务器
  config.headers['X-Token'] = 'asdfghjkl'

  return config
})

// 响应拦截
service.interceptors.response.use(response => {
  if (response.status >= 200 && response.status < 300) {
    // 获取从后端接口返回的数据
    const res = response.data 
    // 判断前后端规范
    console.log(res)
    if (res.code === 200) {
      message.success('success！！！', 3)
      return res.data
    } else if(res.code === 400) {
      message.error('出错了: '+ res.data.message, 3)
      return null
    } else {
      const e = new Error('后端数据口数据异常')
      e.error = res
      return Promise.reject(e)
    }
    
  } else{
    const err = new Error('接口范围异常')
    err.error = response
    return Promise.reject(err)
  }
})

export default service
